﻿using SmartWMS.Common.ResponseOutput;
using SmartWMS.Domain.Base;
using SmartWMS.Server.SystemSets.Dictionary.Dto;

namespace SmartWMS.Server.SystemSets.Dictionary
{
    public interface IDictionarySerivce : ITransientServer
    {
        /// <summary>
        /// 公共字典列表
        /// </summary>
        /// <param name="typeName"></param>
        /// <returns></returns>
        Task<Response<List<SystemSetsInput>>> GetSStaffListAsync(string? typeName);

        /// <summary>
        /// 添加公共字典
        /// </summary>
        /// <param name="systemSetsInput"></param>
        /// <returns></returns>
        Task<Response<bool>> AddSystemSet(SystemSetsInput systemSetsInput);

        /// <summary>
        /// 状态修改
        /// </summary>
        /// <param name="Info"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateState(SystemSetsInput Info);

        /// <summary>
        /// 反填公共字典
        /// </summary>
        /// <param name="Info"></param>
        /// <returns></returns>
        Task<Response<SystemSetsInput>> GetSystemSetAsync(KeyEntity Info);

        /// <summary>
        /// 修改公共字典
        /// </summary>
        /// <param name="systemSetsInput"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateSystemSet(SystemSetsInput systemSetsInput);

        /// <summary>
        /// 字典明细列表
        /// </summary>
        /// <param name="Info"></param>
        /// <returns></returns>
        Task<Response<List<SystemSetsDto>>> GetResponseListAsync(SystemSetsDto Info);

        /// <summary>
        /// 添加字典明细
        /// </summary>
        /// <param name="systemSetsDto"></param>
        /// <returns></returns>
        Task<Response<bool>> AddSystemSetDetail(SystemSetsDto systemSetsDto);

        /// <summary>
        /// 反填字典明细
        /// </summary>
        /// <param name="Info"></param>
        /// <returns></returns>
        Task<Response<SystemSetsDto>> GetSystemSetDetailAsync(KeyEntity Info);

        /// <summary>
        /// 修改字典明细
        /// </summary>
        /// <param name="systemSetsDto"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateSystemSetDetail(SystemSetsDto systemSetsDto);

        /// <summary>
        /// 字典明细状态修改
        /// </summary>
        /// <param name="Info"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateDetailState(SystemSetsDto Info);
       
    }
}
